import { Base64 } from "@/common/base64.js"
const UtilsPlugin = {
	install: (Vue, options) => {
		/**
		 * 跳转
		 * type 1 页面跳转 2 tab跳转 3 调用webview
		 */
		Vue.prototype.jumpTo = function(path, type = "inside", needLogin = false) {
			if (needLogin === true) {
				if (!this.$store.state.hasLogin) {
					uni.switchTab({
						url: '/pages/my/index'
					});
					return this.toast('请登录后操作');
				}
			}
			switch (type) {
				case "inside":
					uni.navigateTo({
						url: path
					});
					break;
				case "tabbar":
					uni.switchTab({
						url: path
					});
					break;
				case "web":
					uni.navigateTo({
						url: '/pages/web/index?url=' + Base64.encode(path)
					});
					break;
				default:
					console.log(path, type, needLogin)
					uni.showToast({
						title: '未知的跳转路径',
						icon: 'none',
						duration: 1500
					});
					break;
			}
		}

		Vue.filter('dataFormat', (date, fmt = 'YYYY-mm-dd HH:MM:SS') => {
			let ret;
			date = new Date(date * 1000);
			const opt = {
				"Y+": date.getFullYear().toString(), // 年
				"m+": (date.getMonth() + 1).toString(), // 月
				"d+": date.getDate().toString(), // 日
				"H+": date.getHours().toString(), // 时
				"M+": date.getMinutes().toString(), // 分
				"S+": date.getSeconds().toString() // 秒
				// 有其他格式化字符需求可以继续添加，必须转化成字符串
			};
			for (let k in opt) {
				ret = new RegExp("(" + k + ")").exec(fmt);
				if (ret) {
					fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
				};
			};
			return fmt;
		})

		/**
		 * 返回
		 */
		Vue.prototype.goBack = function() {
			// #ifdef APP-PLUS
			uni.navigateBack({
				animationType: 'pop-out',
				animationDuration: 200
			})
			// #endif

			// #ifdef H5
			history.back()
			// #endif
		}

		/**
		 * 消息提示
		 */
		Vue.prototype.toast = function(msg = '') {
			uni.showToast({
				title: msg,
				icon: 'none'
			})
		}
	}
}

export default UtilsPlugin
